The present invention relates to electronic information storage. More specifically, the invention relates to the storage of electronic information on non-volatile media.
Although disk transfer rates continue to increase, it is still more efficient to read or write large amounts of data from or to a contiguous area of the disk rather than several, smaller locations scattered around the disk. However, file sizes are driven by the amount of data within the file, not the desire to enhance data transfer rates. Thus, an application that manipulates multiple, smaller portions of data as individual files has, until now, been plagued with the problem that the individual files tend to become scattered and discontiguous on disk, thereby degrading data transfer and access performance.
To address that problem, defragmenting utilities are available that may be executed periodically to defragment files and to relocate files that tend to be used together near each other on the disk. However, defragmenting utilities are generally only executed periodically. For that reason, the fragmentation and scattering of files is a problem that typically grows over time between the execution of defragmenting utilities, which may be months.
In addition, some applications manipulate very large data files that contain smaller portions that are separable in some manner. It is a disadvantage to those applications that the smaller portions are contained within the very large data file because the smaller portions are not individually accessible. However, breaking the large data file into individual smaller data files may result in the information being fragmented on the disk, which introduces the above-identified problems resulting from the fragmentation.
Briefly stated, the present invention allows an application program to write, as a single file, a large block of data comprising multiple portions that could otherwise be written as several smaller files, and then to access, as individual files, each of the portions within the large block of data. Moreover, each of these embedded files can be efficiently converted to individual files. The invention may be partially embodied in a file system that includes a database of records, such as a Master File Table, that essentially defines each file stored on a volume. One example of such a file system is the NTFS(copyright) file system associated with the Windows(copyright) 2000 operating system. The application program writes, via the file system, a single file to the volume as (preferably) a contiguous block of data. The single file includes two or more separable streams of data capable of being stored as individual files (subfiles). Once the single file is written to the volume, in contrast to existing file systems, multiple entries may be made to the database of records to subdivide the monolithic file into the set of constituent files. Each such record defines and points to a subfile within the single file. The subfiles may be positioned within the single file such that the beginning of each subfile lies on the beginning of an allocation unit. In this manner, the single file may be written to the volume in one efficient operation, yet each subfile ends up being individually accessible via its respective entry in the database of records.
The invention overcomes the limitations of the prior art by allowing applications and utilities to write several files to a disk as a single file-write operation, yet, after conversion, to individually access the several files. Another example is a program that typically maintains large data files containing relatively-separable chunks of data, such as various users"" data maintained by an e-mail server program. The invention allows such a program to manipulate its data as a larger data file, and then to save the data as smaller, individually-accessible data files. In yet another example, the invention allows files that are generally accessed separately to be aggregated on disk in a common location, which results in improved performance when accessing more than one of the separate files at the same time.
These and other aspects of the invention, together with the benefits and advantages realized, will become apparent from a reading of the following detailed description in conjunction with the drawings, in which: